<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.6"/>
<title>JSON Voorhees: jsonv::ostream_encoder Class Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="navtree.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="resize.js"></script>
<script type="text/javascript" src="navtree.js"></script>
<script type="text/javascript">
  $(document).ready(initResizable);
  $(window).load(resizeHeight);
</script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/search.js"></script>
<script type="text/javascript">
  $(document).ready(function() { searchBox.OnSelectItem(0); });
</script>
<script type="text/x-mathjax-config">
  MathJax.Hub.Config({
    extensions: ["tex2jax.js"],
    jax: ["input/TeX","output/HTML-CSS"],
});
</script><script src="http://www.mathjax.org/mathjax/MathJax.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
 <tbody>
 <tr style="height: 56px;">
  <td style="padding-left: 0.5em;">
   <div id="projectname">JSON Voorhees
   </div>
   <div id="projectbrief">Killer JSON for C++</div>
  </td>
 </tr>
 </tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.6 -->
<script type="text/javascript">
var searchBox = new SearchBox("searchBox", "search",false,'Search');
</script>
  <div id="navrow1" class="tabs">
    <ul class="tablist">
      <li><a href="index.html"><span>Main&#160;Page</span></a></li>
      <li><a href="pages.html"><span>Related&#160;Pages</span></a></li>
      <li><a href="modules.html"><span>Modules</span></a></li>
      <li class="current"><a href="annotated.html"><span>Classes</span></a></li>
      <li><a href="files.html"><span>Files</span></a></li>
      <li><a href="examples.html"><span>Examples</span></a></li>
      <li>
        <div id="MSearchBox" class="MSearchBoxInactive">
        <span class="left">
          <img id="MSearchSelect" src="search/mag_sel.png"
               onmouseover="return searchBox.OnSearchSelectShow()"
               onmouseout="return searchBox.OnSearchSelectHide()"
               alt=""/>
          <input type="text" id="MSearchField" value="Search" accesskey="S"
               onfocus="searchBox.OnSearchFieldFocus(true)" 
               onblur="searchBox.OnSearchFieldFocus(false)" 
               onkeyup="searchBox.OnSearchFieldChange(event)"/>
          </span><span class="right">
            <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
          </span>
        </div>
      </li>
    </ul>
  </div>
  <div id="navrow2" class="tabs2">
    <ul class="tablist">
      <li><a href="annotated.html"><span>Class&#160;List</span></a></li>
      <li><a href="classes.html"><span>Class&#160;Index</span></a></li>
      <li><a href="hierarchy.html"><span>Class&#160;Hierarchy</span></a></li>
      <li><a href="functions.html"><span>Class&#160;Members</span></a></li>
    </ul>
  </div>
</div><!-- top -->
<div id="side-nav" class="ui-resizable side-nav-resizable">
  <div id="nav-tree">
    <div id="nav-tree-contents">
      <div id="nav-sync" class="sync"></div>
    </div>
  </div>
  <div id="splitbar" style="-moz-user-select:none;" 
       class="ui-resizable-handle">
  </div>
</div>
<script type="text/javascript">
$(document).ready(function(){initNavTree('classjsonv_1_1ostream__encoder.html','');});
</script>
<div id="doc-content">
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
     onmouseover="return searchBox.OnSearchSelectShow()"
     onmouseout="return searchBox.OnSearchSelectHide()"
     onkeydown="return searchBox.OnSearchSelectKey(event)">
<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark">&#160;</span>Friends</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(9)"><span class="SelectionMark">&#160;</span>Macros</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(10)"><span class="SelectionMark">&#160;</span>Groups</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(11)"><span class="SelectionMark">&#160;</span>Pages</a></div>

<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
<iframe src="javascript:void(0)" frameborder="0" 
        name="MSearchResults" id="MSearchResults">
</iframe>
</div>

<div class="header">
  <div class="summary">
<a href="#pub-methods">Public Member Functions</a> &#124;
<a href="#pro-methods">Protected Member Functions</a> &#124;
<a href="classjsonv_1_1ostream__encoder-members.html">List of all members</a>  </div>
  <div class="headertitle">
<div class="title">jsonv::ostream_encoder Class Reference</div>  </div>
</div><!--header-->
<div class="contents">

<p>An encoder that outputs to an <code>std::ostream</code>.  
 <a href="classjsonv_1_1ostream__encoder.html#details">More...</a></p>

<p><code>#include &lt;<a class="el" href="encode_8hpp_source.html">jsonv/encode.hpp</a>&gt;</code></p>
<div id="dynsection-0" onclick="return toggleVisibility(this)" class="dynheader closed" style="cursor:pointer;">
  <img id="dynsection-0-trigger" src="closed.png" alt="+"/> Inheritance diagram for jsonv::ostream_encoder:</div>
<div id="dynsection-0-summary" class="dynsummary" style="display:block;">
</div>
<div id="dynsection-0-content" class="dyncontent" style="display:none;">
 <div class="center">
  <img src="classjsonv_1_1ostream__encoder.png" usemap="#jsonv::ostream_encoder_map" alt=""/>
  <map id="jsonv::ostream_encoder_map" name="jsonv::ostream_encoder_map">
<area href="classjsonv_1_1encoder.html" title="An encoder is responsible for writing values to some form of output. " alt="jsonv::encoder" shape="rect" coords="0,0,185,24"/>
<area href="classjsonv_1_1ostream__pretty__encoder.html" alt="jsonv::ostream_pretty_encoder" shape="rect" coords="0,112,185,136"/>
</map>
 </div></div>
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-methods"></a>
Public Member Functions</h2></td></tr>
<tr class="memitem:a7686582a09a492dd7ef00c3e8054ebfa"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classjsonv_1_1ostream__encoder.html#a7686582a09a492dd7ef00c3e8054ebfa">ostream_encoder</a> (std::ostream &amp;output)</td></tr>
<tr class="memdesc:a7686582a09a492dd7ef00c3e8054ebfa"><td class="mdescLeft">&#160;</td><td class="mdescRight">Create an instance which places text into <em>output</em>.  <a href="#a7686582a09a492dd7ef00c3e8054ebfa">More...</a><br/></td></tr>
<tr class="separator:a7686582a09a492dd7ef00c3e8054ebfa"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:abf48c6f46cde668b77621fc94efbd0e4"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classjsonv_1_1ostream__encoder.html#abf48c6f46cde668b77621fc94efbd0e4">ensure_ascii</a> (bool <a class="el" href="classjsonv_1_1value.html">value</a>)</td></tr>
<tr class="memdesc:abf48c6f46cde668b77621fc94efbd0e4"><td class="mdescLeft">&#160;</td><td class="mdescRight">If set to true (the default), then all non-ASCII characters in strings will be replaced with their numeric encodings.  <a href="#abf48c6f46cde668b77621fc94efbd0e4">More...</a><br/></td></tr>
<tr class="separator:abf48c6f46cde668b77621fc94efbd0e4"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="inherit_header pub_methods_classjsonv_1_1encoder"><td colspan="2" onclick="javascript:toggleInherit('pub_methods_classjsonv_1_1encoder')"><img src="closed.png" alt="-"/>&#160;Public Member Functions inherited from <a class="el" href="classjsonv_1_1encoder.html">jsonv::encoder</a></td></tr>
<tr class="memitem:a8c314dfcaa9df22f72ed16cf771a4849 inherit pub_methods_classjsonv_1_1encoder"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classjsonv_1_1encoder.html#a8c314dfcaa9df22f72ed16cf771a4849">encode</a> (const <a class="el" href="classjsonv_1_1value.html">jsonv::value</a> &amp;source)</td></tr>
<tr class="memdesc:a8c314dfcaa9df22f72ed16cf771a4849 inherit pub_methods_classjsonv_1_1encoder"><td class="mdescLeft">&#160;</td><td class="mdescRight">Encode some source value into this encoder.  <a href="#a8c314dfcaa9df22f72ed16cf771a4849">More...</a><br/></td></tr>
<tr class="separator:a8c314dfcaa9df22f72ed16cf771a4849 inherit pub_methods_classjsonv_1_1encoder"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pro-methods"></a>
Protected Member Functions</h2></td></tr>
<tr class="memitem:a00011e0ece766612895bbe2308c309ef"><td class="memItemLeft" align="right" valign="top">virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classjsonv_1_1ostream__encoder.html#a00011e0ece766612895bbe2308c309ef">write_null</a> () override</td></tr>
<tr class="memdesc:a00011e0ece766612895bbe2308c309ef"><td class="mdescLeft">&#160;</td><td class="mdescRight">Write the null value.  <a href="#a00011e0ece766612895bbe2308c309ef">More...</a><br/></td></tr>
<tr class="separator:a00011e0ece766612895bbe2308c309ef"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ae4fe933ef1fc399fb6609c0c3eeee965"><td class="memItemLeft" align="right" valign="top">virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classjsonv_1_1ostream__encoder.html#ae4fe933ef1fc399fb6609c0c3eeee965">write_object_begin</a> () override</td></tr>
<tr class="memdesc:ae4fe933ef1fc399fb6609c0c3eeee965"><td class="mdescLeft">&#160;</td><td class="mdescRight">Write the opening of an object value.  <a href="#ae4fe933ef1fc399fb6609c0c3eeee965">More...</a><br/></td></tr>
<tr class="separator:ae4fe933ef1fc399fb6609c0c3eeee965"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ac63cf8990ea6027ac05ccfe2b593bd40"><td class="memItemLeft" align="right" valign="top">virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classjsonv_1_1ostream__encoder.html#ac63cf8990ea6027ac05ccfe2b593bd40">write_object_end</a> () override</td></tr>
<tr class="memdesc:ac63cf8990ea6027ac05ccfe2b593bd40"><td class="mdescLeft">&#160;</td><td class="mdescRight">Write the closing of an object value.  <a href="#ac63cf8990ea6027ac05ccfe2b593bd40">More...</a><br/></td></tr>
<tr class="separator:ac63cf8990ea6027ac05ccfe2b593bd40"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a6ff540fdc4296437462aca3eb36f1baa"><td class="memItemLeft" align="right" valign="top">virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classjsonv_1_1ostream__encoder.html#a6ff540fdc4296437462aca3eb36f1baa">write_object_key</a> (string_view key) override</td></tr>
<tr class="memdesc:a6ff540fdc4296437462aca3eb36f1baa"><td class="mdescLeft">&#160;</td><td class="mdescRight">Write the key for an object, including the separator.  <a href="#a6ff540fdc4296437462aca3eb36f1baa">More...</a><br/></td></tr>
<tr class="separator:a6ff540fdc4296437462aca3eb36f1baa"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a8225c69ef08c78e6fa3904cd2690d418"><td class="memItemLeft" align="right" valign="top">virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classjsonv_1_1ostream__encoder.html#a8225c69ef08c78e6fa3904cd2690d418">write_object_delimiter</a> () override</td></tr>
<tr class="memdesc:a8225c69ef08c78e6fa3904cd2690d418"><td class="mdescLeft">&#160;</td><td class="mdescRight">Write the delimiter between two entries in an object.  <a href="#a8225c69ef08c78e6fa3904cd2690d418">More...</a><br/></td></tr>
<tr class="separator:a8225c69ef08c78e6fa3904cd2690d418"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aef38996daa862aa9c828118673c0de52"><td class="memItemLeft" align="right" valign="top">virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classjsonv_1_1ostream__encoder.html#aef38996daa862aa9c828118673c0de52">write_array_begin</a> () override</td></tr>
<tr class="memdesc:aef38996daa862aa9c828118673c0de52"><td class="mdescLeft">&#160;</td><td class="mdescRight">Write the opening of an array value.  <a href="#aef38996daa862aa9c828118673c0de52">More...</a><br/></td></tr>
<tr class="separator:aef38996daa862aa9c828118673c0de52"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a86cbb20c2cdbabbfeab236ed9ee7a0b3"><td class="memItemLeft" align="right" valign="top">virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classjsonv_1_1ostream__encoder.html#a86cbb20c2cdbabbfeab236ed9ee7a0b3">write_array_end</a> () override</td></tr>
<tr class="memdesc:a86cbb20c2cdbabbfeab236ed9ee7a0b3"><td class="mdescLeft">&#160;</td><td class="mdescRight">Write the closing of an array value.  <a href="#a86cbb20c2cdbabbfeab236ed9ee7a0b3">More...</a><br/></td></tr>
<tr class="separator:a86cbb20c2cdbabbfeab236ed9ee7a0b3"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a368086c057bf13478c9ad8d158a5bc75"><td class="memItemLeft" align="right" valign="top">virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classjsonv_1_1ostream__encoder.html#a368086c057bf13478c9ad8d158a5bc75">write_array_delimiter</a> () override</td></tr>
<tr class="memdesc:a368086c057bf13478c9ad8d158a5bc75"><td class="mdescLeft">&#160;</td><td class="mdescRight">Write the delimiter between two entries in an array.  <a href="#a368086c057bf13478c9ad8d158a5bc75">More...</a><br/></td></tr>
<tr class="separator:a368086c057bf13478c9ad8d158a5bc75"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:acfe6796877d22dcaea60d9ab7c3e58d5"><td class="memItemLeft" align="right" valign="top">virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classjsonv_1_1ostream__encoder.html#acfe6796877d22dcaea60d9ab7c3e58d5">write_string</a> (string_view <a class="el" href="classjsonv_1_1value.html">value</a>) override</td></tr>
<tr class="memdesc:acfe6796877d22dcaea60d9ab7c3e58d5"><td class="mdescLeft">&#160;</td><td class="mdescRight">Write a string value.  <a href="#acfe6796877d22dcaea60d9ab7c3e58d5">More...</a><br/></td></tr>
<tr class="separator:acfe6796877d22dcaea60d9ab7c3e58d5"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a9b2d1ef20b2479c3b10bcc3e1d96683f"><td class="memItemLeft" align="right" valign="top">virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classjsonv_1_1ostream__encoder.html#a9b2d1ef20b2479c3b10bcc3e1d96683f">write_integer</a> (std::int64_t <a class="el" href="classjsonv_1_1value.html">value</a>) override</td></tr>
<tr class="memdesc:a9b2d1ef20b2479c3b10bcc3e1d96683f"><td class="mdescLeft">&#160;</td><td class="mdescRight">Write an integer value.  <a href="#a9b2d1ef20b2479c3b10bcc3e1d96683f">More...</a><br/></td></tr>
<tr class="separator:a9b2d1ef20b2479c3b10bcc3e1d96683f"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a11294e15dcdb9694e399a52f62acd52e"><td class="memItemLeft" align="right" valign="top">virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classjsonv_1_1ostream__encoder.html#a11294e15dcdb9694e399a52f62acd52e">write_decimal</a> (double <a class="el" href="classjsonv_1_1value.html">value</a>) override</td></tr>
<tr class="memdesc:a11294e15dcdb9694e399a52f62acd52e"><td class="mdescLeft">&#160;</td><td class="mdescRight">When a special value is given, this will output <code>null</code>.  <a href="#a11294e15dcdb9694e399a52f62acd52e">More...</a><br/></td></tr>
<tr class="separator:a11294e15dcdb9694e399a52f62acd52e"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:acfb4bd76b8387094e0e9f382a282e4c9"><td class="memItemLeft" align="right" valign="top">virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classjsonv_1_1ostream__encoder.html#acfb4bd76b8387094e0e9f382a282e4c9">write_boolean</a> (bool <a class="el" href="classjsonv_1_1value.html">value</a>) override</td></tr>
<tr class="memdesc:acfb4bd76b8387094e0e9f382a282e4c9"><td class="mdescLeft">&#160;</td><td class="mdescRight">Write a boolean value.  <a href="#acfb4bd76b8387094e0e9f382a282e4c9">More...</a><br/></td></tr>
<tr class="separator:acfb4bd76b8387094e0e9f382a282e4c9"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a8433b7aa253ebe9f55ab2b8febc31ce1"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a8433b7aa253ebe9f55ab2b8febc31ce1"></a>
std::ostream &amp;&#160;</td><td class="memItemRight" valign="bottom"><b>output</b> ()</td></tr>
<tr class="separator:a8433b7aa253ebe9f55ab2b8febc31ce1"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
<div class="textblock"><p>An encoder that outputs to an <code>std::ostream</code>. </p>
<p>This implementation is used for <code>operator&lt;&lt;</code> on a <code>value</code>. </p>

<p>Definition at line <a class="el" href="encode_8hpp_source.html#l00141">141</a> of file <a class="el" href="encode_8hpp_source.html">encode.hpp</a>.</p>
</div><h2 class="groupheader">Constructor &amp; Destructor Documentation</h2>
<a class="anchor" id="a7686582a09a492dd7ef00c3e8054ebfa"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">jsonv::ostream_encoder::ostream_encoder </td>
          <td>(</td>
          <td class="paramtype">std::ostream &amp;&#160;</td>
          <td class="paramname"><em>output</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">explicit</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Create an instance which places text into <em>output</em>. </p>

</div>
</div>
<h2 class="groupheader">Member Function Documentation</h2>
<a class="anchor" id="abf48c6f46cde668b77621fc94efbd0e4"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void jsonv::ostream_encoder::ensure_ascii </td>
          <td>(</td>
          <td class="paramtype">bool&#160;</td>
          <td class="paramname"><em>value</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>If set to true (the default), then all non-ASCII characters in strings will be replaced with their numeric encodings. </p>
<p>Since JSON allows for encoded text to be contained in a document, this is inefficient if you have many non-ASCII characters. If you know that your decoding side can properly handle UTF-8 encoding, then you should turn this on.</p>
<dl class="section note"><dt>Note</dt><dd>This functionality cannot be used to passthrough malformed UTF-8 encoded strings. If a given string is invalid UTF-8, it will still get replaced with a numeric encoding. </dd></dl>

</div>
</div>
<a class="anchor" id="aef38996daa862aa9c828118673c0de52"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">virtual void jsonv::ostream_encoder::write_array_begin </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">override</span><span class="mlabel">protected</span><span class="mlabel">virtual</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Write the opening of an array value. </p>
<div class="fragment"><div class="line">[</div>
</div><!-- fragment --> 
<p>Implements <a class="el" href="classjsonv_1_1encoder.html#a5b374633ecbb5110134692c822e8f67b">jsonv::encoder</a>.</p>

<p>Reimplemented in <a class="el" href="classjsonv_1_1ostream__pretty__encoder.html#ae683f58640398a3a302b569fd82fa9b3">jsonv::ostream_pretty_encoder</a>.</p>

</div>
</div>
<a class="anchor" id="a368086c057bf13478c9ad8d158a5bc75"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">virtual void jsonv::ostream_encoder::write_array_delimiter </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">override</span><span class="mlabel">protected</span><span class="mlabel">virtual</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Write the delimiter between two entries in an array. </p>
<div class="fragment"><div class="line">,</div>
</div><!-- fragment --> 
<p>Implements <a class="el" href="classjsonv_1_1encoder.html#a634622f324003dcc978d91d103dd253e">jsonv::encoder</a>.</p>

<p>Reimplemented in <a class="el" href="classjsonv_1_1ostream__pretty__encoder.html#a6b1c561f03c7fe8c311a481720203306">jsonv::ostream_pretty_encoder</a>.</p>

</div>
</div>
<a class="anchor" id="a86cbb20c2cdbabbfeab236ed9ee7a0b3"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">virtual void jsonv::ostream_encoder::write_array_end </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">override</span><span class="mlabel">protected</span><span class="mlabel">virtual</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Write the closing of an array value. </p>
<div class="fragment"><div class="line">]</div>
</div><!-- fragment --> 
<p>Implements <a class="el" href="classjsonv_1_1encoder.html#afda594035074b4d790a16be1531802ac">jsonv::encoder</a>.</p>

<p>Reimplemented in <a class="el" href="classjsonv_1_1ostream__pretty__encoder.html#a448c4f728a09d9a9861ee040cb9ed584">jsonv::ostream_pretty_encoder</a>.</p>

</div>
</div>
<a class="anchor" id="acfb4bd76b8387094e0e9f382a282e4c9"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">virtual void jsonv::ostream_encoder::write_boolean </td>
          <td>(</td>
          <td class="paramtype">bool&#160;</td>
          <td class="paramname"><em>value</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">override</span><span class="mlabel">protected</span><span class="mlabel">virtual</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Write a boolean value. </p>
<div class="fragment"><div class="line"><span class="keyword">true</span></div>
</div><!-- fragment --> 
<p>Implements <a class="el" href="classjsonv_1_1encoder.html#af1f63e294b42cac44a4ebc93dfddd1d3">jsonv::encoder</a>.</p>

<p>Reimplemented in <a class="el" href="classjsonv_1_1ostream__pretty__encoder.html#a2544c3d6f65c1566fecc9a771dd65cb0">jsonv::ostream_pretty_encoder</a>.</p>

</div>
</div>
<a class="anchor" id="a11294e15dcdb9694e399a52f62acd52e"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">virtual void jsonv::ostream_encoder::write_decimal </td>
          <td>(</td>
          <td class="paramtype">double&#160;</td>
          <td class="paramname"><em>value</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">override</span><span class="mlabel">protected</span><span class="mlabel">virtual</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>When a special value is given, this will output <code>null</code>. </p>

<p>Implements <a class="el" href="classjsonv_1_1encoder.html#a3fd4323f1d9a1437af2ca167d1beae49">jsonv::encoder</a>.</p>

<p>Reimplemented in <a class="el" href="classjsonv_1_1ostream__pretty__encoder.html#abb924c5f1332eede93205ac572af7275">jsonv::ostream_pretty_encoder</a>.</p>

</div>
</div>
<a class="anchor" id="a9b2d1ef20b2479c3b10bcc3e1d96683f"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">virtual void jsonv::ostream_encoder::write_integer </td>
          <td>(</td>
          <td class="paramtype">std::int64_t&#160;</td>
          <td class="paramname"><em>value</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">override</span><span class="mlabel">protected</span><span class="mlabel">virtual</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Write an integer value. </p>
<div class="fragment"><div class="line">902</div>
</div><!-- fragment --> 
<p>Implements <a class="el" href="classjsonv_1_1encoder.html#ad161a2185b4afd5b140fffa1b1750bae">jsonv::encoder</a>.</p>

<p>Reimplemented in <a class="el" href="classjsonv_1_1ostream__pretty__encoder.html#ab7617fde174f829061516c3177830fdc">jsonv::ostream_pretty_encoder</a>.</p>

</div>
</div>
<a class="anchor" id="a00011e0ece766612895bbe2308c309ef"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">virtual void jsonv::ostream_encoder::write_null </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">override</span><span class="mlabel">protected</span><span class="mlabel">virtual</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Write the null value. </p>
<div class="fragment"><div class="line"><a class="code" href="group__Value.html#gadfc02eaef2e93e367cb9f2922cdfe490">null</a></div>
</div><!-- fragment --> 
<p>Implements <a class="el" href="classjsonv_1_1encoder.html#adc4c685d9633c53ab01ecd57650372b7">jsonv::encoder</a>.</p>

<p>Reimplemented in <a class="el" href="classjsonv_1_1ostream__pretty__encoder.html#a1f8de6c01aca94d5158fdc4dcf3e64f4">jsonv::ostream_pretty_encoder</a>.</p>

</div>
</div>
<a class="anchor" id="ae4fe933ef1fc399fb6609c0c3eeee965"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">virtual void jsonv::ostream_encoder::write_object_begin </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">override</span><span class="mlabel">protected</span><span class="mlabel">virtual</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Write the opening of an object value. </p>
<div class="fragment"><div class="line">{</div>
</div><!-- fragment --> 
<p>Implements <a class="el" href="classjsonv_1_1encoder.html#a1be23444dc5618d49eb3dc731b09189f">jsonv::encoder</a>.</p>

<p>Reimplemented in <a class="el" href="classjsonv_1_1ostream__pretty__encoder.html#a31e35cb5b832e30281d84de9b13a950e">jsonv::ostream_pretty_encoder</a>.</p>

</div>
</div>
<a class="anchor" id="a8225c69ef08c78e6fa3904cd2690d418"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">virtual void jsonv::ostream_encoder::write_object_delimiter </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">override</span><span class="mlabel">protected</span><span class="mlabel">virtual</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Write the delimiter between two entries in an object. </p>
<div class="fragment"><div class="line">,</div>
</div><!-- fragment --> 
<p>Implements <a class="el" href="classjsonv_1_1encoder.html#aec505c124a25aca218bd0f437383f701">jsonv::encoder</a>.</p>

<p>Reimplemented in <a class="el" href="classjsonv_1_1ostream__pretty__encoder.html#a7afa27eea2b3bbe37ca30bf15c5a8fb9">jsonv::ostream_pretty_encoder</a>.</p>

</div>
</div>
<a class="anchor" id="ac63cf8990ea6027ac05ccfe2b593bd40"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">virtual void jsonv::ostream_encoder::write_object_end </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">override</span><span class="mlabel">protected</span><span class="mlabel">virtual</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Write the closing of an object value. </p>
<div class="fragment"><div class="line">}</div>
</div><!-- fragment --> 
<p>Implements <a class="el" href="classjsonv_1_1encoder.html#a87379e446c9882bbef43ba07eaa79921">jsonv::encoder</a>.</p>

<p>Reimplemented in <a class="el" href="classjsonv_1_1ostream__pretty__encoder.html#a854bb2c1b3460577b4ff51414ce2d23b">jsonv::ostream_pretty_encoder</a>.</p>

</div>
</div>
<a class="anchor" id="a6ff540fdc4296437462aca3eb36f1baa"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">virtual void jsonv::ostream_encoder::write_object_key </td>
          <td>(</td>
          <td class="paramtype">string_view&#160;</td>
          <td class="paramname"><em>key</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">override</span><span class="mlabel">protected</span><span class="mlabel">virtual</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Write the key for an object, including the separator. </p>
<div class="fragment"><div class="line"><span class="stringliteral">&quot;key&quot;</span>:</div>
</div><!-- fragment --> 
<p>Implements <a class="el" href="classjsonv_1_1encoder.html#ace3ca4df06ca8d7db6ec87ff17d26964">jsonv::encoder</a>.</p>

<p>Reimplemented in <a class="el" href="classjsonv_1_1ostream__pretty__encoder.html#a3cea9227a05d549f9c72452c153bc9bf">jsonv::ostream_pretty_encoder</a>.</p>

</div>
</div>
<a class="anchor" id="acfe6796877d22dcaea60d9ab7c3e58d5"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">virtual void jsonv::ostream_encoder::write_string </td>
          <td>(</td>
          <td class="paramtype">string_view&#160;</td>
          <td class="paramname"><em>value</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">override</span><span class="mlabel">protected</span><span class="mlabel">virtual</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Write a string value. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">value</td><td>is the string to write. It will <em>hopefully</em> be encoded as valid UTF-8. It is the implementation's choice of how to deal with malformed string values. Two common options are to replace malformed sequences with ?s or to simply output these encodings and let the receiver deal with them.</td></tr>
  </table>
  </dd>
</dl>
<div class="fragment"><div class="line"><span class="stringliteral">&quot;value&quot;</span></div>
</div><!-- fragment --> 
<p>Implements <a class="el" href="classjsonv_1_1encoder.html#a0bf6951a13172eab70dceef664c27937">jsonv::encoder</a>.</p>

<p>Reimplemented in <a class="el" href="classjsonv_1_1ostream__pretty__encoder.html#ab97601528b1dfff7abb784a52c9691ff">jsonv::ostream_pretty_encoder</a>.</p>

</div>
</div>
<hr/>The documentation for this class was generated from the following file:<ul>
<li>jsonv/<a class="el" href="encode_8hpp_source.html">encode.hpp</a></li>
</ul>
</div><!-- contents -->
</div><!-- doc-content -->
<!-- start footer part -->
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
  <ul>
    <li class="navelem"><b>jsonv</b></li><li class="navelem"><a class="el" href="classjsonv_1_1ostream__encoder.html">ostream_encoder</a></li>
    <li class="footer">Generated by
    <a href="http://www.doxygen.org/index.html">
    <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.6 </li>
  </ul>
</div>
</body>
</html>
